home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / areuh.tar / areuh / jmpdoc / jmp.c < prev    next >
C/C++ Source or Header  |  1990-10-10  |  2KB  |  72 lines

  1. #define OUI 1
  2. #define NON 0
  3. #define JMPVIDE {0,0,0,0,0,0,0,0}
  4.  
  5. struct jmpcode
  6. {
  7.     char *jc_text [4] ;        /* les 4 lignes au max. d'un goto */
  8.     int jc_long ;        /* longueur en quartets */
  9.     saddr jc_min, jc_max ;
  10.     int jc_invert ;        /* OUI s'il faut inverser le test, NON sinon */
  11. } ;
  12.  
  13. struct jmpcode jmptable [7][6] =
  14. {
  15.  
  16. /* BETC */
  17.     {   {"GOC %s", 0, 0, 0, 3, -127, 128, NON},
  18.     {"GOTO %s", 0, 0, 0, 4, -2047, 2048, NON},
  19.     {"GOLONG %s", 0, 0, 0, 6, -32766, 32768, NON},
  20.     JMPVIDE,
  21.     JMPVIDE,
  22.     JMPVIDE},
  23.  
  24. /* BETNC */
  25.     {    {"GONC %s", 0, 0, 0, 3, -127, 128, NON},
  26.     {"GOTO %s", 0, 0, 0, 4, -2047, 2048, NON},
  27.     {"GOLONG %s", 0, 0, 0, 6, -32766, 32768, NON},
  28.     JMPVIDE,
  29.     JMPVIDE,
  30.     JMPVIDE},
  31.  
  32. /* JMP */
  33.     {    {"GOTO %s", 0, 0, 0,  4, -2047, 2048, NON},
  34.     {"GOLONG %s", 0, 0, 0, 6, -32766, 32768, NON},
  35.     JMPVIDE,
  36.     JMPVIDE,
  37.     JMPVIDE,
  38.     JMPVIDE},
  39.  
  40. /* JMPC */
  41.     {    {"GOC %s", 0, 0, 0, 3, -127, 128, NON},
  42.     {"GONC *+7", "GOTO %s", 0, 0, 7, -2044, 2051, NON},
  43.     {"GONC *+9", "GOLONG %s", 0, 0, 9, -32763, 32772, NON},
  44.     JMPVIDE,
  45.     JMPVIDE,
  46.     JMPVIDE},
  47.  
  48. /* JMPNC */
  49.     {    {"GONC %s", 0, 0, 0, 3, -127, 128, NON},
  50.     {"GOC *+7", "GOTO %s", 0, 0, 7, -2044, 2051, NON},
  51.     {"GOC *+9", "GOLONG %s", 0, 0, 9, -32763, 32772, NON},
  52.     JMPVIDE,
  53.     JMPVIDE,
  54.     JMPVIDE},
  55.  
  56. /* JMPOUI */
  57.     {    {"GOYES %s", 0, 0, 0, 2, -128, 127, NON},
  58.         {"GOYES *+6", "GOTO %s", 0, 0, 6, -2045, 2050, OUI},
  59.     {"GOYES *+8", "GOLONG %s", 0, 0, 8, -32764, 32771, OUI},
  60.     {"GOYES *+5", "GONC *+6", "GOTO %s", 0, 9, -2042, 2053, NON},
  61.     {"GOYES *+5", "GONC *+8", "GOLONG %s", 0, 11, -32759, 32776, NON},
  62.     JMPVIDE},
  63.  
  64. /* JSR */
  65.     {    {"GOSUB %s", 0, 0, 0, 4, -2044, 2051, NON},
  66.         {"GOSUBL %s", 0, 0, 0, 6, -32762, 32773, NON},
  67.     JMPVIDE,
  68.     JMPVIDE,
  69.     JMPVIDE,
  70.     JMPVIDE},
  71. } ;
  72.